# 进程和线程

进程:系统进行资源分配的基本单位

  • 每个进程拥有独立内存空间,进程间通信成本高
  • 引入进程目的:多个程序并发执行,提高资源使用率、提高系统效率
  • 缺点:进程在创建,切换和销毁时候开销比较大

线程:CPU 进行调度的基本单位

  • 轻量级的进程,同一进程的线程共享:heap;独立:stack,程序计数器,一组寄存器
  • 引入线程目的:同一进程里多线程共享虚拟内存空间和一些重要资源,线程间上下文切换和通信开销小;且同一进程下,有时可以分为互不关联的任务,无需顺序执行,提高操作系统的并发性

# 并发和并行

  • 并发:在一个执行单元(CPU)上,交替执行多个任务
  • 并行:在多个执行单元(CPU)上,同时执行多个任务

# 三个核心问题

并发编程领域可以抽象为以下 3 个核心问题,如何解决这些问题是掌握并发编程的关键:

  1. 分工:如何将一个任务合理的拆分,提高并发程序的性能
  2. 同步:主要指线程间的协作,即如何做到:当条件满足时,线程被唤醒;条件不满足时,线程等待
  3. 互斥:如何保证线程安全,同一时刻,只允许一个线程访问共享变量
Last Updated: 8/14/2020, 3:55:28 AM